package com.blue.core.id;

/**
 * 不重复 ID 产生器
 * 
 * @author zhengj
 * @since 1.0 2017年8月11日
 */
public class IdGenerator
{
	private IdGenerator()
	{
	}
	
	/**
	 * UUID－32位长度，有序
	 */
	public static String uuid32bit()
	{
		return UUID.generator();
	}
	
	/**
	 * UUID－24位长度，有序
	 */
	public static String uuid24bit()
	{
		ObjectId id = new ObjectId();
		return id.toHexString();
	}
	
	/**
	 * UUID－16位长度，有序
	 */
	public static String uuid16bit()
	{
		ObjectId id = new ObjectId();
		return id.toBase64();
	}
	
	/**
	 * UUID－12至13位长度，有序
	 */
	public static String uuid12bit()
	{
		return Long.toHexString(SingleSnowflakeId.getInstance().nextId());
	}
	
	/**
	 * long 类型，有序
	 */
	public static long id()
	{
		return SingleSnowflakeId.getInstance().nextId();
	}
	
}
